package org.example.biz;

import java.util.HashMap;
import java.util.Map;

public abstract class AbstractFactory {

    protected Map<String, AbstractFactory> factories = new HashMap<>();

    public void func1() {
        System.out.println("func1");
    }

    public void func2() {
        System.out.println("func2");
    }

    public AbstractFactory init() {
        // ... 初始化逻辑 ...
        return this;
    }

    public void register(String val, AbstractFactory factory) {
        // ... 注册逻辑 ...
        factories.put(val, factory);
    }

    /**
     * 获取对象
     * 
     * @param val
     * @return
     */
    public AbstractFactory getFactory(String val) { // 获取工厂实例的方法，根据val返回对应的工厂实例。
        return factories.get(val); // 这里假设val是工厂实例的标识符，根据标识符返回对应的工厂实例。
    }

    public abstract void func3();

    public Map<String, AbstractFactory> getFactories() {
        return factories;
    }
}
